草庐IT

Java Parallel Streams 关闭线程

全部标签

java - ZeroMQ:如何实现类C的多线程

在C中,我们有套接字和描述符,可以只获取其中之一并将它们交给线程,这使得您可以接受传入连接并将工作交给您喜欢的线程和线程可以自己发送回响应。我的问题是,如何使用ZeroMQ实现这一点?使用Request-Reply模式,我似乎无法异步发送和接收,响应必须按顺序进行,我的目标是让多个客户端连接到单个服务器,不按顺序发送响应。我查看了请求响应模式,但API明确指出,将套接字与多个线程一起使用是个坏主意。也许我错过了什么或者ZeroMQ比我知道的更聪明。如果您需要任何进一步的信息,请发表评论,我会尽力提供信息。我还查看了提供的示例:CodeExamples这是套接字描述:ZMQ-Socket

java - 线程池、共享数据、Java同步

比如说,我有一个数据对象:classValueRef{doublevalue;}每个数据对象存储在主集合中的位置:CollectionmasterList=...;我还有一个作业集合,其中每个作业都有一个本地数据对象集合(其中每个数据对象也出现在masterList中):classJobimplementsRunnable{CollectionneededValues=...;voidrun(){doublesum=0;for(ValueRefx:neededValues)sum+=x;System.out.println(sum);}}用例:for(ValueRefx:masterL

java - 单击关闭按钮时 awt 窗口不关闭

我为虚拟键盘实现了一个示例类并运行了这个VirtualKeyboardTest。出现了键盘,但主要问题是单击x按钮时它没有正确关闭。我该如何纠正这个问题?importjava.awt.*;importjava.awt.event.*;publicclassVirtualKeyboardTest{publicstaticvoidmain(Stringargs[]){VirtualKeyboardvk=newVirtualKeyboard();vk.setSize(500,300);vk.setVisible(true);Framef1=newFrame();f1.addWindowLis

java - 线程交错 - 可以输出什么可能的结果

接受这个话题:a=3;b=3;并接受这个线程:b=5;a=5;他们都从监视器访问相同的数据。如果它们同时运行(通过使用线程),可能会出现什么结果? 最佳答案 因为线程的操作可以按任何顺序执行,所以a=3,5和b=3,5的任何组合都是可能的。为future的读者澄清:线程1:a=3b=3,线程2:b=5a=5可能的操作订单:我:线程1,线程1,线程2,线程2II:线程1、线程2、线程1、线程2III:线程1、线程2、线程2、线程1IV:线程2、线程1、线程2、线程1V:线程2、线程2、线程1、线程1VI:线程2、线程1、线程1、线程2

Java线程自发唤醒

我有一个Java线程做这样的事情:while(running){synchronized(lock){if(nextVal==null){try{lock.wait();}catch(InterruptedExceptionie){continue;}}val=nextVal;nextVal=null;}...dostuffwith'val'...}我在其他地方设置的值是这样的:if(val==null){LOG.error("nullvalue");}else{synchronized(lock){nextVal=newVal;lock.notify();}}偶尔(字面上每几百万次一

java - Swing 线程安全编程

publicstaticvoidmain(Stringargs[]){/*SettheNimbuslookandfeel*////*IfNimbus(introducedinJavaSE6)isnotavailable,staywiththedefaultlookandfeel.*Fordetailsseehttp://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html*/try{for(javax.swing.UIManager.LookAndFeelInfoinfo:javax.swing.UIMana

java - 如何从java中的另一个正在运行的线程访问方法

我是Java线程的新手。我想要做的是从ThreadB对象获得对当前正在运行的线程ThreadA的实例的访问权限,并调用其名为setSomething的方法。1)我认为我比实际更努力2)我有一个空指针异常,所以我一定是在访问该方法时做错了什么这是我目前所了解的,我已经尽职调查并在StackOverflow上查看了类似的问题。我有一个当前线程在后台运行://assumethisthreadiscalledbysomeotherapplicationpublicclassThreadAimplementsRunnable{privateThreadaThread;publicThreadA(

java - 尝试写入已关闭的连接时套接字不会抛出异常

我是java套接字编程的新手,但我遇到了这个问题。当我尝试写入客户端意外关闭的连接时,我没有得到任何异常。我有服务器端。publicstaticvoidmain(String[]args)throwsIOException{ServerSocketsocket=newServerSocket(8036);Stringst;while(true){System.out.println("hello");Socketsocket1=socket.accept();BufferedReaderreader=newBufferedReader(newInputStreamReader(sock

java - 如何在 Java 中对返回 boolean 值的两个并行线程执行短路评估?

我正在寻找逻辑上等同于以下问题的指导:publicbooleanparallelOR(){ExecutorServiceexecutor=Executors.newFixedThreadPool(2);FuturetaskA=executor.submit(newSlowTaskA());FuturetaskB=executor.submit(newSlowTaskB());returntaskA.get()||taskB.get();//ThisisnotwhatIwant//Exceptionhandlingomittedforclarity}上面的构造给出了正确的结果但是总是等待

java - 使用 Guava CharMatcher 作为类中的静态字段。 CharMatcher 线程安全吗?

我需要替换字符串中的一些字符:每个点加下划线。只需执行:myString.replace(".","_");哪个有效。不过,我想使用Guava的CharMatcher,它应该有更好的性能。CharMatcherdotCharMatcher=CharMatcher.anyOf(".");dotCharMatcher.replaceFrom(myString,"_");它运行在一个有很多线程的服务器上。我能否在使用它的类中将dotCharMatcher设为静态字段,还是应该在每个请求中创建一个?(它是线程安全的吗?)谢谢 最佳答案 是的